package collection.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsDemo {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(3);
        list.add(1);
        list.add(4);
        list.add(2);
        System.out.println("原始列表：" + list);

        // 1. 排序
        Collections.sort(list); // 自然排序
        System.out.println("排序后：" + list);

        // 2. 反转
        Collections.reverse(list);
        System.out.println("反转后：" + list);

        // 3. 随机打乱
        Collections.shuffle(list);
        System.out.println("打乱后：" + list);

        // 4. 查找（需先排序）
        Collections.sort(list);
        int index = Collections.binarySearch(list, 3); // 二分查找
        System.out.println("元素3的位置：" + index);

        // 5. 替换
        Collections.replaceAll(list, 3, 5);
        System.out.println("替换后：" + list);

        // 6. 填充
        Collections.fill(list, 0);
        System.out.println("填充后：" + list);

        // 7. 创建不可修改的集合
        List<Integer> unmodifiableList = Collections.unmodifiableList(list);
        // unmodifiableList.add(1); // 抛出UnsupportedOperationException

        // 8. 创建同步集合（线程安全）
        List<Integer> synchronizedList = Collections.synchronizedList(new ArrayList<>());
    }
}
